Note: This tutorial assumes that you have completed the previous tutorials: Gazebo内世界を探索してみる. |
Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
地図を作成してナビゲーションを行う.
Description: ナビゲーション・スタックを使ってGazebo内世界の地図を作成し, それに基づいてナビゲーションを始めますKeywords: simulation, gazebo, map building, navigation
Tutorial Level: INTERMEDIATE
Next Tutorial: 既知の地図内で自律的にナビゲーションする
Contents
概要
このチュートリアルでは, 仮想世界の地図作成し, それを利用して空間内でナビゲーションを行います. 基本的に, 地図作成 と 地図を用いたナビゲーション のTurtleBotのチュートリアルをシミュレーションの世界の中でやり直すだけです. だから, TurtleBotのナビゲーションの利用に関する理解が疑わしければ, それらのチュートリアルが参考となります.
地図の作成
まず, クイックスタート・ガイド に従って, TurtleBotのシミュレーションを立ち上げますが, 今回はほんの少しだけ面白い世界を読み込みます:
$ source /opt/ros/hydro/setup.bash $ roslaunch turtlebot_gazebo turtlebot_playground.launch
TurtleBot2とplayground世界の様子はこのようになります:
Tip:
もちろん, 自分だけの世界を作ることもできます. Gazeboでは難しくないことなのですが, このチュートリアルの範囲からは外れます.
環境変数 TURTLEBOT_XXX を設定することによってシミュレーション上のTurtleBotをカスタマイズできます; 例えば:
$ export TURTLEBOT_BASE=create $ export TURTLEBOT_STACKS=circles $ export TURTLEBOT_3D_SENSOR=asus_xtion_pro $ roslaunch turtlebot_gazebo turtlebot_playground.launch
以上は, Asus Xtion Pro camera を取り付けた TurtleBot 1 をシミュレートします.
注意:
Createとルンバ向けのGazeboのプラグインはHydroでは完全には動きませんので, 使用時はおかしな挙動に備えましょう.
地図の作成には, 以下のように打ち込みます:
roslaunch turtlebot_gazebo gmapping_demo.launch
RVizを使って, 地図作成の経過を可視化します.
$ roslaunch turtlebot_rviz_launchers view_navigation.launch
そして, 前項で説明したように, TurtleBotを任意の操縦ツールで地図が完成するまで空間内を走らせます. この画像は360度回転した後の地図作成の経過を示しています.
最後に, 地図を保存します:
$ rosrun map_server map_saver -f <your map name>
playgroundでナビゲーションする
すべて上手くいったことを確認するため, 前のセクションで立ち上げたものをすべて止め, 地図作成以外の手順を繰り返します. 代わりに, 以下のようにタイプします:
roslaunch turtlebot_gazebo amcl_demo.launch map_file:=<full path to your map file>
もしくは, 作成済みの地図を使用したければ, map_fileの引数を省略します.
すると, navigate a map のチュートリアルにあるように, RVizのplayground内ならどこでもロボットを連れていくことができます.